複習一下登入系統的程式邏輯,
登入系統邏輯:
1.判斷用戶要新增文章時,有沒有登入資料
2.如果沒有,跳轉登入頁面,驗證使用者輸入的帳號,正確就存一個cookie。
2.當他要新增文章時,會檢測有沒有這個cookie的資料。
3.有就是有登入的
4.沒有就要跳回登入畫面
所以這邊提到一個關鍵,就是cookie的紀錄,雖然我們使用了.Net 的套件來做登入系統,
但像是紀錄權限、登入系統這些功能,需要跟系統註冊說明說我要啟用這些功能。
目標:
1.跟系統註冊啟用權限功能
步驟:
step1.開啟projram.cs
builder.Services
// cookie 登入時的預設
.AddAuthentication(options => options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme)
.AddCookie(x =>
{
// 如果登入失敗會跳轉甚麼頁面
x.LoginPath = new PathString("/Login");
});
// 註冊[Authorize] 這個attribute方法,系統會驗證有沒有claims物件
builder.Services.AddAuthorization();
step2.啟用服務
// 這我記得是官方順序
app.UseAuthentication();
app.UseRouting();
app.UseAuthorization();
note:
pipeline 處理request 是有順序性的,依照官方順序即可。
step3.最後一個步驟,在你想要進行登入驗證的Controller 或是 action 加上[Authorize],要求使用者進行驗證。
我這邊範例是,要進入新增文章頁面前會進行驗證,如果驗證失敗會進入Login.cshtml的頁面。
[Authorize]
[HttpGet("CreateArticle")]
public IActionResult CreateArticle()
{
return View();
}
到這邊基本上就完成啦~
希望大家除了幫這邊文章案讚,也幫我分享我的第一篇文章。
如果人數夠多,我計畫附上影片教學以及原始碼。
讓大家可以更簡單建立自己的blog